Học cách gom nhiều lệnh thành một khối riêng, tái sử dụng mã nguồn và xây dựng chương trình gọn gàng hơn trên Scratch.
Khối tùy chỉnh (My Blocks) là gì?
Trong Scratch, bạn đã quen với các nhóm khối có sẵn như Sự kiện, Di chuyển, Điều khiển… Nhóm My Blocks (Khối của tôi) cho phép bạn tự tạo khối lệnh mới theo ý mình — giống như viết một công thức nấu ăn riêng rồi gọi tên để dùng lại nhiều lần.
Nhóm My Blocks (màu tím hồng) nằm ở bảng khối bên trái màn hình Scratch
Mỗi khối tùy chỉnh thực chất là một thủ tục (procedure): bạn định nghĩa một chuỗi lệnh dưới khối định nghĩa (define), sau đó gọi khối đó ở bất kỳ đâu trong chương trình. Khi khối được chạy, Scratch sẽ thực hiện toàn bộ lệnh bên trong định nghĩa — như thể bạn đã ghép sẵn các khối vào chỗ đó.
💡 Ghi nhớ
Khối tùy chỉnh thuộc về từng nhân vật. Mỗi nhân vật có bộ My Blocks riêng; nhân vật này không tự động dùng được khối do nhân vật khác tạo.
Vì sao nên dùng My Blocks?
Khi dự án càng lớn, số khối lệnh càng nhiều và dễ rối. My Blocks giúp bạn quản lý mã nguồn hiệu quả hơn:
Gọn gàng
Gom nhiều khối thành một khối có tên dễ hiểu
Tái sử dụng
Viết một lần, gọi nhiều lần ở nhiều chỗ
Dễ sửa
Sửa trong phần định nghĩa → mọi chỗ gọi đều thay đổi
Dễ đọc
Chương trình đọc như kịch bản: "nhảy", "bắn", "tính điểm"
My Blocks là bước tiến quan trọng giúp bạn lập trình theo cách chuyên nghiệp hơn trên Scratch
Không dùng My Blocks
Cùng một đoạn mã lặp lại 5 lần ở 5 chỗ khác nhau. Muốn sửa phải tìm và sửa từng chỗ.
Có dùng My Blocks
Viết đoạn mã một lần trong khối định nghĩa, gọi khối 5 lần. Chỉ cần sửa một chỗ.
📌 Ví dụ — Tình huống thực tế
Trong game, nhân vật cần "nhảy" khi nhấn phím, khi chạm nền và khi ăn đồ. Thay vì copy 10 khối di chuyển ba lần, bạn tạo khối nhảy và chỉ cần kéo một khối mỗi lần cần dùng.
Cách tạo khối tùy chỉnh
Quy trình tạo khối gồm hai phần: định nghĩa (khối làm gì) và sử dụng (gọi khối khi cần).
Bước 1 — Tạo khối mới
Chọn nhân vật cần tạo khối.
Nhấn vào nhóm My Blocks ở bảng khối bên trái.
Nhấn nút "Tạo một khối" (Make a Block).
Đặt tên khối — nên chọn tên mô tả hành động, ví dụ: xoay_tròn, bắn_đạn.
Nhấn OK.
Hộp thoại đặt tên khi nhấn "Tạo một khối"
Bước 2 — Viết phần định nghĩa
Sau khi nhấn OK, Scratch tạo khối mũ định nghĩa [tên khối] trong vùng lập trình. Bạn ghép các khối lệnh bên dưới khối định nghĩa — đó chính là nội dung khối sẽ thực hiện.
Ghép các khối lệnh dưới khối "định nghĩa" để mô tả hành động của khối tùy chỉnh
định nghĩa xoay_tròn xoay (15) độ đợi (0.1) giây xoay (-15) độ
Bước 3 — Gọi khối trong chương trình
Khối mới xuất hiện trong nhóm My Blocks. Kéo khối đó vào chương trình chính — ví dụ dưới khối khi nhấn phím Space — để chạy toàn bộ lệnh đã định nghĩa.
Khối tùy chỉnh sau khi tạo xong, sẵn sàng kéo vào chương trình
khi nhấn phím [Space] xoay_tròn
💡 Ghi nhớ
Khối định nghĩa không tự chạy. Nó chỉ mô tả "công thức". Chương trình chỉ thực thi khi bạn gọi khối tùy chỉnh ở nơi khác (sự kiện, vòng lặp, điều kiện…).
📌 Ví dụ — Khối "chào_hỏi"
Định nghĩa: nói "Xin chào!" trong 1 giây → đợi 0.5 giây → nói "Chúc bạn vui!" trong 1 giây
Sử dụng: khi nhấn cờ xanh → chào_hỏi
Một khối gọn thay cho bốn khối lệnh lặp lại mỗi lần cần chào.
Khối có tham số đầu vào
Đôi khi bạn muốn khối linh hoạt hơn — ví dụ nhảy cao bao nhiêu bước thay vì cố định. Khi tạo khối, nhấn "Thêm đầu vào" (Add an input) để thêm tham số:
Số (Number)
Bước nhảy, góc xoay, thời gian…
Chữ (Text)
Lời thoại, tên người chơi…
Đúng/Sai
Bật/tắt hiệu ứng, kiểm tra trạng thái
Bạn cũng có thể thêm nhãn văn bản (Add a label) để khối đọc tự nhiên hơn, ví dụ: nhảy (bước) bước.
Bắt đầu từ nút "Tạo một khối", sau đó thêm đầu vào trong hộp thoại
định nghĩa nhảy (bước) thay đổi y đi (bước) đợi (0.2) giây thay đổi y đi ((-1) * (bước))
Khi gọi khối, bạn điền giá trị vào ô trống — nhảy (50) hoặc nhảy (100) — cùng một khối nhưng hành vi khác nhau.
📌 Ví dụ — Khối "nói_chào (tên)"
Định nghĩa: nói (nối ("Xin chào, ") (tên)) trong 2 giây
Gọi:nói_chào ("Lan") → "Xin chào, Lan"
Gọi:nói_chào ("Hùng") → "Xin chào, Hùng"
💡 Mẹo đặt tên tham số
Đặt tên tham số ngắn, rõ nghĩa: bước, góc, tên. Tránh tên chung chung như x, a khi có nhiều tham số cùng lúc.
Khối trả về giá trị (Reporter)
Mặc định, khối tùy chỉnh là khối câu lệnh (thực hiện hành động). Scratch còn cho phép tạo khối báo cáo (reporter) — trả về một giá trị số hoặc chữ để dùng trong khối khác.
Khi tạo khối, tích chọn "Thêm phần mở rộng trả về giá trị" (Add extension reporter). Trong phần định nghĩa, dùng khối báo cáo ở cuối để trả kết quả.
định nghĩa tính_tổng (a) (b) báo cáo ((a) + (b))
Khối tính_tổng có thể ghép vào khối khác: đặt [kết_quả] thành tính_tổng (3) (7) → kết quả là 10.
Chạy không làm mới màn hình
Với khối có nhiều bước di chuyển hoặc vẽ, bạn có thể bật tùy chọn "Chạy không làm mới màn hình" (Run without screen refresh). Khi đó Scratch thực hiện toàn bộ lệnh rồi mới cập nhật hình ảnh — hữu ích khi vẽ hình phức tạp hoặc di chuyển tức thì mà không thấy từng bước trung gian.
📌 Ví dụ — Khối vẽ hình vuông
Khối vẽ_vuông (cạnh) lặp 4 lần: tiến (cạnh) → xoay 90 độ. Bật "chạy không làm mới màn hình" để hình vuông xuất hiện ngay, không nhìn thấy bút di chuyển từng cạnh.
Mẹo hay và lỗi thường gặp
Mẹo sử dụng hiệu quả
Đặt tên bằng tiếng Việt không dấu hoặc tiếng Anh — tránh ký tự đặc biệt khó đọc.
Mỗi khối làm một việc — khối nhảy chỉ nhảy, khối kiểm_tra_chạm chỉ kiểm tra va chạm.
Chia nhỏ dự án lớn — game có thể có các khối: bắt_đầu_game, kết_thúc_game, cập_nhật_điểm.
Sửa khối cũ — nhấn chuột phải vào khối tùy chỉnh → chỉnh sửa để đổi tên hoặc thêm tham số.
Lỗi thường gặp
Quên ghép lệnh dưới khối định nghĩa — khối gọi ra nhưng không làm gì vì phần định nghĩa trống.
Gọi khối nhưng không có sự kiện kích hoạt — khối tùy chỉnh cần nằm trong luồng chương trình đang chạy (sự kiện, vòng lặp…).
Nhầm nhân vật — tạo khối ở nhân vật A nhưng tìm ở nhân vật B.
Copy-paste thay vì dùng My Blocks — khi sửa một chỗ, các chỗ copy không tự cập nhật.
💡 Ghi nhớ
My Blocks khác với phát tin (broadcast): phát tin gửi tín hiệu cho nhân vật khác nghe; My Blocks gom lệnh trong cùng một nhân vật và chạy ngay lập tức.
My Blocks giúp bạn tư duy theo từng chức năng — nền tảng cho lập trình có cấu trúc
Dự án thực hành: Game nhảy đơn giản
Hãy tạo game nhỏ với ba khối tùy chỉnh để luyện tập:
đặt_vị_trí_ban_đầu — đặt x, y về giữa sân khấu, đặt biến điểm thành 0.
nhảy (cao) — thay đổi y đi (cao), đợi 0.15 giây, thay đổi y đi (-cao).
ăn_sao — thay đổi điểm đi 10, phát âm thanh "pop", tạo hiệu ứng nhỏ (đổi kích thước rồi trả lại).
khi nhấn cờ xanh đặt_vị_trí_ban_đầu
khi nhấn phím [Space] nhảy (60)
khi nhân vật chạm [Sao] ăn_sao
Chương trình chính chỉ còn vài khối sự kiện gọn gàng; chi tiết nằm trong từng khối tùy chỉnh. Khi muốn nhảy cao hơn, chỉ cần đổi tham số nhảy (80) thay vì sửa nhiều khối di chuyển.
📌 Thử thách mở rộng
Thêm khối game_over — hiện thông báo, dừng âm thanh, ẩn nhân vật.
Dùng khối ăn_sao ở cả nhân vật chính và nhân vật phụ (mỗi nhân vật tạo khối riêng).
💡 Lời kết
My Blocks biến chương trình Scratch từ "dài và lặp lại" thành "ngắn và có tổ chức". Hãy mở Scratch, tạo một khối đơn giản ngay hôm nay — rồi từ từ thêm tham số và khối reporter khi bạn đã quen. Đây là kỹ năng nền tảng để sau này học các ngôn ngữ lập trình có hàm (function) như Python hay JavaScript.